-
Notifications
You must be signed in to change notification settings - Fork 12
Fix buffer overflow issue when converting strings from JNI to Dart #416
Fix buffer overflow issue when converting strings from JNI to Dart #416
Conversation
Converting JStringPtr to Dart String can roll into invalid memory and crash app.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Thanks for your contribution @slightfoot!
Published |
Pull Request Test Coverage Report for Build 6743389785Warning: This coverage report may be inaccurate.We've detected an issue with your CI configuration that might affect the accuracy of this pull request's coverage report.
💛 - Coveralls |
@HosseinYousefi Would it be good to notify the packages that depend on jni about his one? maybe the dart ones like cronet_http? |
It's a good idea! cc/ @brianquinlan. |
Thanks for the heads-up. I'll publish a cronet_http version with a 0.7.2 lower-bound right away. |
Changes: ``` > git log --format="%C(auto) %h %s" eaea725..5dca10e https://dart.googlesource.com/native.git/+/5dca10ea [style] Enable `dangling_library_doc_comments` lint (809) https://dart.googlesource.com/native.git/+/4179fbd1 Merge pull request 545 from dart-lang/merge-jnigen https://dart.googlesource.com/native.git/+/9d35138f Merge package:jni and package:jnigen into shared native repository https://dart.googlesource.com/native.git/+/37789d66 [jnigen] Add paths to github workflow https://dart.googlesource.com/native.git/+/05994dd7 [jnigen] Fix beta CI and print the analyzer failures (https://github.com/dart-lang/jnigen/issues/418) https://dart.googlesource.com/native.git/+/3f34c6cd [jnigen] Reformat with the latest version of dart format (https://github.com/dart-lang/jnigen/issues/417) https://dart.googlesource.com/native.git/+/c64e9c87 [ffigen] Stable release 10.0.0 (202) https://dart.googlesource.com/native.git/+/e3e63406 [ffigen] Update urls after repo merge (203) https://dart.googlesource.com/native.git/+/b90e4e83 update the package markdown table; update the issue templates (197) https://dart.googlesource.com/native.git/+/c0018281 update repo references from the move (198) https://dart.googlesource.com/native.git/+/29e423c7 Merge pull request 185 from dart-lang/merge-ffigen-package https://dart.googlesource.com/native.git/+/ff474966 Switch publish workflow to use the beta SDK https://dart.googlesource.com/native.git/+/36342298 Merge package:ffigen into dart-lang/native https://dart.googlesource.com/native.git/+/85e4257b [ffigen] Change ffigen to use dart-lang/native's directory stucture https://dart.googlesource.com/native.git/+/1920cc98 [ffigen] Prepare for merge into dart-lang/native (641) https://dart.googlesource.com/native.git/+/69c3e21e [jnigen] Fix buffer overflow issue when converting strings from JNI to Dart (https://github.com/dart-lang/jnigen/issues/416) https://dart.googlesource.com/native.git/+/b4a59e2e [jnigen] Remove macos plugin from package:jni (https://github.com/dart-lang/jnigen/issues/415) https://dart.googlesource.com/native.git/+/8974cb0b [jnigen] Bump actions/checkout from 4.1.0 to 4.1.1 (https://github.com/dart-lang/jnigen/issues/412) https://dart.googlesource.com/native.git/+/2491826d [ffigen] ObjC static functions (633) https://dart.googlesource.com/native.git/+/e2d6f4c9 [ffigen] Bump actions/checkout from 4.1.0 to 4.1.1 (636) https://dart.googlesource.com/native.git/+/bf2e60dd [ffigen] Bump dart-lang/setup-dart from 1.5.1 to 1.6.0 (637) https://dart.googlesource.com/native.git/+/9dcd6ef6 [ffigen] Bump subosito/flutter-action from 2.10.0 to 2.12.0 (638) https://dart.googlesource.com/native.git/+/039040ec [jnigen] Bump subosito/flutter-action from 2.10.0 to 2.12.0 (https://github.com/dart-lang/jnigen/issues/411) https://dart.googlesource.com/native.git/+/0d205b90 [ffigen] Fix generated asset/assetId property for ffi-native (634) https://dart.googlesource.com/native.git/+/8aeb62c9 [ffigen] Use getDartType rather than getFfiDartType in ObjC block codegen (632) https://dart.googlesource.com/native.git/+/86abba53 [ffigen] Enable use_super_parameters lint (631) https://dart.googlesource.com/native.git/+/f2a82d87 [jnigen] Bump actions/checkout from 3.6.0 to 4.1.0 (https://github.com/dart-lang/jnigen/issues/404) https://dart.googlesource.com/native.git/+/8b765d73 [ffigen] Typedefs for Dart types (625) https://dart.googlesource.com/native.git/+/c71d38bd [ffigen] Refactor `sameFfiDartAndCType` to not require a `Writer` (629) https://dart.googlesource.com/native.git/+/0f1ed374 [ffigen] Bump dart-lang/setup-dart from 1.5.0 to 1.5.1 (627) https://dart.googlesource.com/native.git/+/4b6894f5 [ffigen] Bump actions/checkout from 3.6.0 to 4.1.0 (626) https://dart.googlesource.com/native.git/+/f2b92916 [ffigen] Bump coverallsapp/github-action from 2.2.1 to 2.2.3 (628) https://dart.googlesource.com/native.git/+/abcebe00 [jnigen] Bump coverallsapp/github-action from 2.2.1 to 2.2.3 (https://github.com/dart-lang/jnigen/issues/403) https://dart.googlesource.com/native.git/+/917ed4d2 [jnigen] Bump actions/setup-java from 3.12.0 to 3.13.0 (https://github.com/dart-lang/jnigen/issues/402) https://dart.googlesource.com/native.git/+/24d7b679 [ffigen] Handle ObjC nullable annotations (624) https://dart.googlesource.com/native.git/+/8456a7c3 [jnigen] Add `JLazyReference` and `JFinalString` (https://github.com/dart-lang/jnigen/issues/400) https://dart.googlesource.com/native.git/+/5c7b78c3 [ffigen] Separate getDartType and getUserType (623) https://dart.googlesource.com/native.git/+/266ab71c [jnigen] Use Dart 3 class modifiers in `package:jni` (https://github.com/dart-lang/jnigen/issues/398) https://dart.googlesource.com/native.git/+/cb147547 [ffigen] Better typedefs for `NativeFunction`s (621) https://dart.googlesource.com/native.git/+/9fafeacb [jnigen] Convert incorrect exceptions into errors (https://github.com/dart-lang/jnigen/issues/397) https://dart.googlesource.com/native.git/+/f3b2369b [ffigen] Simplify flutter_plugin_ffi_test (620) https://dart.googlesource.com/native.git/+/e8e0a98e [jnigen] Add `JBuffer`, `JByteBuffer` to enable fast copying to and from `Uint8List` (https://github.com/dart-lang/jnigen/issues/390) https://dart.googlesource.com/native.git/+/e0b74862 [ffigen] Fix ObjC `instancetype` inheritance issue. (618) https://dart.googlesource.com/native.git/+/eb49cbab [jnigen] Add `ignore_for_file: lines_longer_than_80_chars` to generated files (https://github.com/dart-lang/jnigen/issues/386) https://dart.googlesource.com/native.git/+/619b5023 [jnigen] Add correct cast to interface method invocation (https://github.com/dart-lang/jnigen/issues/385) https://dart.googlesource.com/native.git/+/4e53697f [ffigen] Better block names (606) https://dart.googlesource.com/native.git/+/1e1eeee8 [ffigen] Use stret and fpret variants of objc_msgSend where appropriate (613) https://dart.googlesource.com/native.git/+/1d469856 [jnigen] Specify JDK min and max version in README (https://github.com/dart-lang/jnigen/issues/384) https://dart.googlesource.com/native.git/+/908ae22f [ffigen] Merge pull request 610 from dart-lang/roll-stable-to-9.0.1 https://dart.googlesource.com/native.git/+/fa984640 [ffigen] Bump actions/checkout from 3.5.3 to 3.6.0 (611) https://dart.googlesource.com/native.git/+/6606892f [jnigen] jni-0.6.1 fix number of topics (https://github.com/dart-lang/jnigen/issues/382) https://dart.googlesource.com/native.git/+/35d75221 [jnigen] Bump actions/checkout from 3.5.3 to 3.6.0 (https://github.com/dart-lang/jnigen/issues/381) https://dart.googlesource.com/native.git/+/7684bdb8 [jnigen] Configure autopublishing (https://github.com/dart-lang/jnigen/issues/380) https://dart.googlesource.com/native.git/+/1176680a [ffigen] Merge commit 'ac1b0498ecc81ef4f358c4fc93c770c7ff07d9a6' into stable https://dart.googlesource.com/native.git/+/79e36f0a [ffigen] Fix 577 (609) https://dart.googlesource.com/native.git/+/2042ea0b [ffigen] fix: objc block trampoline invalid return type (607) https://dart.googlesource.com/native.git/+/92d51378 [ffigen] Fix null inference weirdness (605) https://dart.googlesource.com/native.git/+/e0814e1a [ffigen] Listener/Async Blocks (601) https://dart.googlesource.com/native.git/+/bd8aae49 [jnigen] Rename `delete` to `release` (https://github.com/dart-lang/jnigen/issues/379) https://dart.googlesource.com/native.git/+/244596e9 [jnigen] Throw DartExceptions in Java (https://github.com/dart-lang/jnigen/issues/376) https://dart.googlesource.com/native.git/+/128d61ec [ffigen] Mention installing xcode command line tools on mac https://dart.googlesource.com/native.git/+/b7cc0489 [jnigen] Run Java GC using jcmd in tests (https://github.com/dart-lang/jnigen/issues/371) https://dart.googlesource.com/native.git/+/95c8375a [jnigen] Finalize interfaces in Java (https://github.com/dart-lang/jnigen/issues/369) https://dart.googlesource.com/native.git/+/4f85cedc [jnigen] Add tests on summary content (https://github.com/dart-lang/jnigen/issues/353) https://dart.googlesource.com/native.git/+/204d8695 [jnigen] Rename ctor to new (https://github.com/dart-lang/jnigen/issues/362) https://dart.googlesource.com/native.git/+/fa5ff14b [jnigen] Check for free in reference getter (https://github.com/dart-lang/jnigen/issues/361) https://dart.googlesource.com/native.git/+/7c9cca95 [jnigen] Use isolate_id instead of thread_id (https://github.com/dart-lang/jnigen/issues/360) https://dart.googlesource.com/native.git/+/651320e4 [jnigen] Update Dart API headers (https://github.com/dart-lang/jnigen/issues/358) https://dart.googlesource.com/native.git/+/17d48f8e [jnigen] Clean up interface implementation using auxiliary generated classes (https://github.com/dart-lang/jnigen/issues/349) https://dart.googlesource.com/native.git/+/9492c196 [jnigen] Bump actions/setup-java from 3.11.0 to 3.12.0 (https://github.com/dart-lang/jnigen/issues/338) https://dart.googlesource.com/native.git/+/b5b238c9 [ffigen] Bump coverallsapp/github-action from 2.2.0 to 2.2.1 (596) https://dart.googlesource.com/native.git/+/2527e476 [jnigen] Bump coverallsapp/github-action from 2.2.0 to 2.2.1 (https://github.com/dart-lang/jnigen/issues/339) https://dart.googlesource.com/native.git/+/db9185a3 [jnigen] Override JObject's toString with appropriate Java's toString (https://github.com/dart-lang/jnigen/issues/337) https://dart.googlesource.com/native.git/+/bb1c49fd [jnigen] Closes https://github.com/dart-lang/jnigen/issues/325 (https://github.com/dart-lang/jnigen/issues/336) https://dart.googlesource.com/native.git/+/ef333492 [jnigen] Fix windows specifics and global reference ownership in interface implementation (https://github.com/dart-lang/jnigen/issues/335) https://dart.googlesource.com/native.git/+/7e690dde [jnigen] Fix CI (https://github.com/dart-lang/jnigen/issues/330) https://dart.googlesource.com/native.git/+/06730492 [jnigen] Interface implementation (https://github.com/dart-lang/jnigen/issues/326) https://dart.googlesource.com/native.git/+/ac1b0498 [ffigen] Allow extern inline functions to be generated. (594) https://dart.googlesource.com/native.git/+/cc604f91 [ffigen] Fix doc comment missing on struct/union array fields, update test, ve… (593) https://dart.googlesource.com/native.git/+/3a5a9bea [ffigen] Add ffigen yaml schema (586) https://dart.googlesource.com/native.git/+/7960c768 [jnigen] Fix summarizer nested class bug (https://github.com/dart-lang/jnigen/issues/312) https://dart.googlesource.com/native.git/+/e6bdddbf [jnigen] Bump actions/checkout from 3.5.2 to 3.5.3 (https://github.com/dart-lang/jnigen/issues/311) https://dart.googlesource.com/native.git/+/fc8bd8ec [jnigen] Bump coverallsapp/github-action from 2.1.2 to 2.2.0 (https://github.com/dart-lang/jnigen/issues/310) https://dart.googlesource.com/native.git/+/34714a4e [ffigen] Bump coverallsapp/github-action from 2.1.2 to 2.2.0 (590) https://dart.googlesource.com/native.git/+/4854160d [ffigen] Bump actions/checkout from 3.5.2 to 3.5.3 (589) https://dart.googlesource.com/native.git/+/fc6688da [jnigen] Parse Kotlin's metadata + Remove `suspend_fun_to_async` flag in config (https://github.com/dart-lang/jnigen/issues/308) https://dart.googlesource.com/native.git/+/cda65643 [jnigen] Added the namespace property in build.gradle if the field is necessary. (https://github.com/dart-lang/jnigen/issues/306) https://dart.googlesource.com/native.git/+/9ef4d1f8 [jnigen] Non static nested class construction (https://github.com/dart-lang/jnigen/issues/297) https://dart.googlesource.com/native.git/+/72e7019d [jnigen] Add proguard-rules for kotlin_plugin (https://github.com/dart-lang/jnigen/issues/296) https://dart.googlesource.com/native.git/+/4827fc35 [jnigen] remove simpleName and packageName (https://github.com/dart-lang/jnigen/issues/294) https://dart.googlesource.com/native.git/+/756cd11a [jnigen] Generating List/Map/... from classes in `package:jni` (https://github.com/dart-lang/jnigen/issues/291) https://dart.googlesource.com/native.git/+/19ff0d27 [jnigen] Using a yaml symbols file instead of hard coding package:jni exported classes (https://github.com/dart-lang/jnigen/issues/289) https://dart.googlesource.com/native.git/+/09eeb536 [ffigen] add LLVM installation instructions for Fedora (584) https://dart.googlesource.com/native.git/+/32d057e3 [jnigen] blast_repo fixes (https://github.com/dart-lang/jnigen/issues/283) https://dart.googlesource.com/native.git/+/19c89a3c [ffigen] Rename `master` branch to `main` (582) https://dart.googlesource.com/native.git/+/cd0d7545 [ffigen] blast_repo fixes (576) https://dart.googlesource.com/native.git/+/1ecd702b [jnigen] Refactor C bindings generation (https://github.com/dart-lang/jnigen/issues/282) https://dart.googlesource.com/native.git/+/31eb7b8b [jnigen] Fix encoding bug (https://github.com/dart-lang/jnigen/issues/279) https://dart.googlesource.com/native.git/+/7452aae5 [jnigen] closes https://github.com/dart-lang/jnigen/issues/280 (https://github.com/dart-lang/jnigen/issues/281) https://dart.googlesource.com/native.git/+/29739cfd [ffigen] Fixed invalid code generated due to zero-length arrays in structs/union. (575) https://dart.googlesource.com/native.git/+/58a1e635 [jnigen] CI fix (https://github.com/dart-lang/jnigen/issues/277) https://dart.googlesource.com/native.git/+/ede5a9cc [ffigen] Set SDK version to 3.0 stable (573) https://dart.googlesource.com/native.git/+/6648a18a [ffigen] Fix invalid code generated due to anoymous structs/unions (572) https://dart.googlesource.com/native.git/+/d6a05944 [jnigen] Summarizer fix class listing (https://github.com/dart-lang/jnigen/issues/272) https://dart.googlesource.com/native.git/+/6822f909 [jnigen] improve coverage (https://github.com/dart-lang/jnigen/issues/274) https://dart.googlesource.com/native.git/+/06afdf11 [jnigen] Boxed types + Map + Set + List (https://github.com/dart-lang/jnigen/issues/271) https://dart.googlesource.com/native.git/+/013eee20 [ffigen] Add the ability to get a pointer to an objective C object (568) https://dart.googlesource.com/native.git/+/995c530a [jnigen] 0.4.0 (https://github.com/dart-lang/jnigen/issues/270) https://dart.googlesource.com/native.git/+/c06c2336 [ffigen] Bump version to 8.0.0 stable (566) https://dart.googlesource.com/native.git/+/8059f72b [ffigen] Add topics in pubspec.yaml (567) https://dart.googlesource.com/native.git/+/fa265a8c [jnigen] Stress tests and a few runtime fixes (https://github.com/dart-lang/jnigen/issues/264) https://dart.googlesource.com/native.git/+/21c4801b [ffigen] Bump coverallsapp/github-action from 2.0.0 to 2.1.2 (564) https://dart.googlesource.com/native.git/+/41754390 [ffigen] Bump actions/checkout from 3.5.0 to 3.5.2 (563) https://dart.googlesource.com/native.git/+/cf3db198 [jnigen] Bump coverallsapp/github-action from 2.0.0 to 2.1.2 (https://github.com/dart-lang/jnigen/issues/269) https://dart.googlesource.com/native.git/+/16f2d4ec [jnigen] Bump actions/checkout from 3.5.0 to 3.5.2 (https://github.com/dart-lang/jnigen/issues/268) https://dart.googlesource.com/native.git/+/79e845f7 [ffigen] Support for generating Variadic functions (515) https://dart.googlesource.com/native.git/+/f0ab18e8 [ffigen] Use `@Native` syntax (562) https://dart.googlesource.com/native.git/+/e9f16e67 [jnigen] Support Maven version 4 (https://github.com/dart-lang/jnigen/issues/261) https://dart.googlesource.com/native.git/+/1efea342 [ffigen] Merge stable to master, bump version (561) https://dart.googlesource.com/native.git/+/54215ca1 [ffigen] Handle multi anonymous struct with same USR (559) https://dart.googlesource.com/native.git/+/f129cdfc [jnigen] Add FAQ entry about references (https://github.com/dart-lang/jnigen/issues/259) https://dart.googlesource.com/native.git/+/730a9978 [ffigen] Merge pull request 560 from dart-lang/stable-to-7-x https://dart.googlesource.com/native.git/+/e01f63d2 [ffigen] Merge commit 'ac318a25ecd7bea6685f8b3f8cabbdea16519936' into stable-to-7-x https://dart.googlesource.com/native.git/+/1753fed9 [jnigen] Bunch of small testsuite improvements (https://github.com/dart-lang/jnigen/issues/257) https://dart.googlesource.com/native.git/+/80808dac [jnigen] Further FFI improvements (https://github.com/dart-lang/jnigen/issues/254) https://dart.googlesource.com/native.git/+/97f6ecc0 [ffigen] Add description to typedef test (557) https://dart.googlesource.com/native.git/+/ba48bf74 [ffigen] Change native test bindings name for consistency (556) https://dart.googlesource.com/native.git/+/767f2449 [ffigen] 3.0 Class modifiers (553) https://dart.googlesource.com/native.git/+/24f449b0 [jnigen] Fix summary generation tests (https://github.com/dart-lang/jnigen/issues/253) https://dart.googlesource.com/native.git/+/215832ae [jnigen] Remove FFI patch and use mutex around method/field lookups (https://github.com/dart-lang/jnigen/issues/246) https://dart.googlesource.com/native.git/+/ac318a25 [ffigen] Explicit '' as name for anon structs/unions (552) https://dart.googlesource.com/native.git/+/e279dd5a [jnigen] Make README more approachable. (https://github.com/dart-lang/jnigen/issues/235) https://dart.googlesource.com/native.git/+/d21b6729 [jnigen] (An attempt to) Improve CI workflows (https://github.com/dart-lang/jnigen/issues/222) https://dart.googlesource.com/native.git/+/af0ee4fd [jnigen] Type inference for generics (https://github.com/dart-lang/jnigen/issues/236) https://dart.googlesource.com/native.git/+/b7db0faf [jnigen] Rethrow exception in gradle stub (https://github.com/dart-lang/jnigen/issues/237) https://dart.googlesource.com/native.git/+/fd98f927 [ffigen] Add common code path for test configs (491) https://dart.googlesource.com/native.git/+/4d24823d [jnigen] Add ability to use source dependencies from Gradle (https://github.com/dart-lang/jnigen/issues/231) https://dart.googlesource.com/native.git/+/e998636a [jnigen] JAR handling improvements (https://github.com/dart-lang/jnigen/issues/220) https://dart.googlesource.com/native.git/+/c9c73a09 [jnigen] 1.5x the timeout for the other kotlin test (https://github.com/dart-lang/jnigen/issues/229) https://dart.googlesource.com/native.git/+/0dd2f0d0 [jnigen] Use `package:cli_config` (https://github.com/dart-lang/jnigen/issues/197) https://dart.googlesource.com/native.git/+/95435836 [ffigen] Update version and changelog (546) https://dart.googlesource.com/native.git/+/8bfec3dc [ffigen] Bump coverallsapp/github-action from 1.2.4 to 2.0.0 (543) https://dart.googlesource.com/native.git/+/a80742b9 [ffigen] Parameter names in function pointer fields (537) https://dart.googlesource.com/native.git/+/732f363c [jnigen] Bump coverallsapp/github-action from 1.2.4 to 2.0.0 (https://github.com/dart-lang/jnigen/issues/224) https://dart.googlesource.com/native.git/+/eea221db [jnigen] Bump subosito/flutter-action from 2.8.0 to 2.10.0 (https://github.com/dart-lang/jnigen/issues/223) https://dart.googlesource.com/native.git/+/92509331 [jnigen] Bump actions/setup-java (https://github.com/dart-lang/jnigen/issues/226) https://dart.googlesource.com/native.git/+/0279f344 [ffigen] Bump actions/checkout from 3.3.0 to 3.5.0 (542) https://dart.googlesource.com/native.git/+/ea63bdf9 [jnigen] Bump actions/checkout from 3.3.0 to 3.5.0 (https://github.com/dart-lang/jnigen/issues/225) https://dart.googlesource.com/native.git/+/6110c118 [ffigen] Bump dart-lang/setup-dart from 1.4.0 to 1.5.0 (541) https://dart.googlesource.com/native.git/+/0727f8a0 [ffigen] Bump subosito/flutter-action from 2.8.0 to 2.10.0 (544) https://dart.googlesource.com/native.git/+/f16de6d4 [jnigen] 1.5x the timeout for the kotlin test (https://github.com/dart-lang/jnigen/issues/221) https://dart.googlesource.com/native.git/+/5883326d [jnigen] Remove array extensions from the generated code (https://github.com/dart-lang/jnigen/issues/217) https://dart.googlesource.com/native.git/+/a16ad441 [jnigen] Generate JValue wrapper classes in pure Dart bindings (https://github.com/dart-lang/jnigen/issues/212) https://dart.googlesource.com/native.git/+/4562edc8 [jnigen] Add Coverage badge (https://github.com/dart-lang/jnigen/issues/205) https://dart.googlesource.com/native.git/+/15668264 [jnigen] Refactor into Visitor pattern (https://github.com/dart-lang/jnigen/issues/200) https://dart.googlesource.com/native.git/+/d7eb3f1c [ffigen] Detect Scoop LLVM installation on Windows (535) https://dart.googlesource.com/native.git/+/b26e13d9 [ffigen] Automatically generate `ignore_for_file: type=lint` if not specified in preamble. (532) https://dart.googlesource.com/native.git/+/11611875 [ffigen] Bump dependencies and fix lints (527) https://dart.googlesource.com/native.git/+/06d224f0 [ffigen] Fix macro file parser (524) https://dart.googlesource.com/native.git/+/64fec925 [jnigen] Bump coverallsapp/github-action from 1.1.3 to 1.2.4 (https://github.com/dart-lang/jnigen/issues/192) https://dart.googlesource.com/native.git/+/b54e1cbe [jnigen] Bump actions/setup-java (https://github.com/dart-lang/jnigen/issues/191) https://dart.googlesource.com/native.git/+/abace99f [ffigen] Bump coverallsapp/github-action from 1.1.3 to 1.2.4 (523) https://dart.googlesource.com/native.git/+/b94aa02b [ffigen] Bump SDK constraint to 4.0.0 (517) https://dart.googlesource.com/native.git/+/ce9e59e7 [jnigen] Bump SDK constraint to 4.0.0 (https://github.com/dart-lang/jnigen/issues/190) https://dart.googlesource.com/native.git/+/f27c722c [ffigen] Fix path normalization for absolute paths and globs starting with ** (516) https://dart.googlesource.com/native.git/+/2267ff48 [jnigen] 0.3.0 (https://github.com/dart-lang/jnigen/issues/189) https://dart.googlesource.com/native.git/+/4f770ade [jnigen] Convert Kotlin's `suspend fun` to Dart's async methods (https://github.com/dart-lang/jnigen/issues/171) https://dart.googlesource.com/native.git/+/5ab08fdb [ffigen] Add support nested anonymous union/struct (511) https://dart.googlesource.com/native.git/+/6c47900c [ffigen] Bump dart-lang/setup-dart from 1.3 to 1.4 (508) https://dart.googlesource.com/native.git/+/bcdbe76b [ffigen] Bump actions/checkout from 3.2.0 to 3.3.0 (507) https://dart.googlesource.com/native.git/+/55b84ad4 [ffigen] Fix formatting (509) https://dart.googlesource.com/native.git/+/466ed3f7 [jnigen] Bump actions/setup-java (https://github.com/dart-lang/jnigen/issues/179) https://dart.googlesource.com/native.git/+/800a1102 [jnigen] Bump egor-tensin/setup-clang from 1.3 to 1.4 (https://github.com/dart-lang/jnigen/issues/180) https://dart.googlesource.com/native.git/+/e22150db [jnigen] fix link (https://github.com/dart-lang/jnigen/issues/177) https://dart.googlesource.com/native.git/+/6c6b5f5f [jnigen] 0.2.1 (https://github.com/dart-lang/jnigen/issues/175) https://dart.googlesource.com/native.git/+/7bf0a717 [jnigen] 0.2.0 (https://github.com/dart-lang/jnigen/issues/174) https://dart.googlesource.com/native.git/+/d9ae6e2f [ffigen] Add a bit more introduction to readme (505) https://dart.googlesource.com/native.git/+/87bba4e4 [jnigen] Bump actions/checkout from 3.1.0 to 3.3.0 (https://github.com/dart-lang/jnigen/issues/169) https://dart.googlesource.com/native.git/+/540922a3 [jnigen] Bump actions/setup-java (https://github.com/dart-lang/jnigen/issues/167) https://dart.googlesource.com/native.git/+/4e3eeb51 [ffigen] Bump actions/checkout from 3.1.0 to 3.2.0 (502) https://dart.googlesource.com/native.git/+/8f00f5f7 [ffigen] Update example in README.md (501) https://dart.googlesource.com/native.git/+/659e626c [jnigen] Exclude methods and fields of excluded classes (https://github.com/dart-lang/jnigen/issues/164) https://dart.googlesource.com/native.git/+/4c5f570f [ffigen] Add new supported typedef - `uintptr_t` (mapped to `ffi.UintPtr`). (499) https://dart.googlesource.com/native.git/+/611c9646 [jnigen] Use .jar metadata to generate generic types (https://github.com/dart-lang/jnigen/issues/158) https://dart.googlesource.com/native.git/+/82c0e16f [ffigen] Code cleanup (496) https://dart.googlesource.com/native.git/+/faebd8b4 [ffigen] Allow user compiler options to override built-in options (495) https://dart.googlesource.com/native.git/+/c1954121 [jnigen] Bump coverallsapp/github-action from 1.1.2 to 1.1.3 (https://github.com/dart-lang/jnigen/issues/154) https://dart.googlesource.com/native.git/+/c470670f [jnigen] blast_repo fixes (https://github.com/dart-lang/jnigen/issues/152) https://dart.googlesource.com/native.git/+/8460b264 [jnigen] fixed the problem with annotations containing enums + reg tests (https://github.com/dart-lang/jnigen/issues/150) https://dart.googlesource.com/native.git/+/51f71d85 [jnigen] Updated docs to reflect renames (https://github.com/dart-lang/jnigen/issues/146) https://dart.googlesource.com/native.git/+/e19d7d66 [ffigen] Added new llvm versions to linuxDylibLocations (489) https://dart.googlesource.com/native.git/+/da1647c7 [jnigen] Generic support (https://github.com/dart-lang/jnigen/issues/136) https://dart.googlesource.com/native.git/+/878ec39b [ffigen] Remove the built in flag from ObjC interfaces (487) https://dart.googlesource.com/native.git/+/d057af5d [jnigen] Add some documentation (https://github.com/dart-lang/jnigen/issues/115) https://dart.googlesource.com/native.git/+/a9e526b3 [jnigen] Improve coverage (https://github.com/dart-lang/jnigen/issues/134) https://dart.googlesource.com/native.git/+/77ee8707 [ffigen] Bump coverallsapp/github-action from 1.1.2 to 1.1.3 (482) https://dart.googlesource.com/native.git/+/18f94998 [ffigen] blast_repo fixes (481) https://dart.googlesource.com/native.git/+/1d36198e [jnigen] added .filled ctor to JArray (https://github.com/dart-lang/jnigen/issues/130) https://dart.googlesource.com/native.git/+/a80a3780 [jnigen] `JniX` to `JX` rename (https://github.com/dart-lang/jnigen/issues/126) https://dart.googlesource.com/native.git/+/068d88fe [jnigen] Array support (https://github.com/dart-lang/jnigen/issues/118) https://dart.googlesource.com/native.git/+/5e87326a [jnigen] Summarizer fix (https://github.com/dart-lang/jnigen/issues/116) https://dart.googlesource.com/native.git/+/cbe33448 [jnigen] Some summarizer improvements (https://github.com/dart-lang/jnigen/issues/114) https://dart.googlesource.com/native.git/+/35f1ba8d [jnigen] Pure dart bindings (https://github.com/dart-lang/jnigen/issues/110) https://dart.googlesource.com/native.git/+/88dcfc93 [jnigen] fix: pr_checks now works on macOS (https://github.com/dart-lang/jnigen/issues/108) https://dart.googlesource.com/native.git/+/27ca3100 [jnigen] Add regenerate script (https://github.com/dart-lang/jnigen/issues/106) https://dart.googlesource.com/native.git/+/f5b33be0 [jnigen] colorized warning in logger (https://github.com/dart-lang/jnigen/issues/107) https://dart.googlesource.com/native.git/+/1972596e [ffigen] Prevent warnings in FfiNative example (479) https://dart.googlesource.com/native.git/+/a9446e7f [jnigen] Array signatures fix (https://github.com/dart-lang/jnigen/issues/105) https://dart.googlesource.com/native.git/+/07d8c725 [ffigen] Symbol file import export (468) https://dart.googlesource.com/native.git/+/e50394b8 [ffigen] Use tmpDir over working directory (464) https://dart.googlesource.com/native.git/+/5cb0060d [jnigen] Reduce concatenation in binding generator code (https://github.com/dart-lang/jnigen/issues/102) https://dart.googlesource.com/native.git/+/226e60f3 [jnigen] File-per-class and single file bindings (https://github.com/dart-lang/jnigen/issues/98) https://dart.googlesource.com/native.git/+/644e75fb [jnigen] Make jni:setup build all native libraries (https://github.com/dart-lang/jnigen/issues/96) https://dart.googlesource.com/native.git/+/637134b2 [ffigen] Zero initialize unused Block fields (475) https://dart.googlesource.com/native.git/+/9cb65f6a [jnigen] bump jackson-databind to 2.14.0-rc2 (https://github.com/dart-lang/jnigen/issues/97) https://dart.googlesource.com/native.git/+/3e801f95 [jnigen] Move output related configuration to single place (https://github.com/dart-lang/jnigen/issues/93) https://dart.googlesource.com/native.git/+/0fb321c5 [ffigen] Add a step for building cursor definition map. (474) https://dart.googlesource.com/native.git/+/81bda33f [jnigen] Few improvements in generated C code including exception support. (https://github.com/dart-lang/jnigen/issues/87) https://dart.googlesource.com/native.git/+/5563b5cb [ffigen] Fix some noisy warnings that often show up in ObjC binding generation (469) https://dart.googlesource.com/native.git/+/848ac943 [ffigen] Remove unnecessary root cursor filtering (471) https://dart.googlesource.com/native.git/+/d6fed49b [jnigen] tools: generate_ide_files.dart and pre_commit_checks.dart (https://github.com/dart-lang/jnigen/issues/86) https://dart.googlesource.com/native.git/+/abb3c7b5 [jnigen] General cleanup (https://github.com/dart-lang/jnigen/issues/80) https://dart.googlesource.com/native.git/+/0aba098b [ffigen] Remove ignoreFilter from typedef parsing. (462) https://dart.googlesource.com/native.git/+/30cc93d5 [ffigen] Assume relative paths are relative to the config file (465) https://dart.googlesource.com/native.git/+/27d9b9f0 [ffigen] Fix mac bot (466) https://dart.googlesource.com/native.git/+/a719f3b5 [jnigen] LICENSE trailer for generated code (https://github.com/dart-lang/jnigen/issues/63) https://dart.googlesource.com/native.git/+/4fe87834 [ffigen] Update LICENSE (457) https://dart.googlesource.com/native.git/+/2a430c67 [ffigen] NativeFunc's child should be a FunctionType (461) https://dart.googlesource.com/native.git/+/5c4b3abc [ffigen] Pointer.fromFunction leaks, so store result in static variable (459) https://dart.googlesource.com/native.git/+/6ef32d59 [ffigen] Remove list_diff package (456) https://dart.googlesource.com/native.git/+/550b27e5 [jnigen] Windows support (https://github.com/dart-lang/jnigen/issues/59) https://dart.googlesource.com/native.git/+/820c2b1e [ffigen] Correctly handle strings with null characters (454) https://dart.googlesource.com/native.git/+/a2465f94 [ffigen] Work around analyzer bug for FfiNatives (455) https://dart.googlesource.com/native.git/+/33105e76 [jnigen] Update pubspec.yaml (https://github.com/dart-lang/jnigen/issues/58) https://dart.googlesource.com/native.git/+/ac9f26aa [jnigen] Update pubspec.yaml (https://github.com/dart-lang/jnigen/issues/57) https://dart.googlesource.com/native.git/+/e53465bd [jnigen] Jni refactor (https://github.com/dart-lang/jnigen/issues/53) https://dart.googlesource.com/native.git/+/cd369f0b [jnigen] logging (https://github.com/dart-lang/jnigen/issues/48) https://dart.googlesource.com/native.git/+/a1bd070d [jnigen] Rename to jnigen (https://github.com/dart-lang/jnigen/issues/47) https://dart.googlesource.com/native.git/+/41e7871e [jnigen] Android plugin example (https://github.com/dart-lang/jnigen/issues/46) https://dart.googlesource.com/native.git/+/ef4a9f83 [jnigen] Jni_gen Examples (https://github.com/dart-lang/jnigen/issues/36) https://dart.googlesource.com/native.git/+/91a41f6d [jnigen] Rename java package of simple_test to com.github.dart_lang.... (https://github.com/dart-lang/jnigen/issues/35) https://dart.googlesource.com/native.git/+/0f7ced71 [jnigen] Add basic YAML config support (https://github.com/dart-lang/jnigen/issues/32) https://dart.googlesource.com/native.git/+/b5160496 [jnigen] Initial code generator support (https://github.com/dart-lang/jnigen/issues/19) https://dart.googlesource.com/native.git/+/2081ac09 [ffigen] Fix function deduplication (450) https://dart.googlesource.com/native.git/+/4d938396 [ffigen] `ffi-native` -> `asset` stop logger warning (449) https://dart.googlesource.com/native.git/+/50f06156 [ffigen] `FfiNative` support (447) https://dart.googlesource.com/native.git/+/22c90064 [ffigen] Add a swift example (441) https://dart.googlesource.com/native.git/+/a97fe3fa [ffigen] Increase timeout Flutter integration test (446) https://dart.googlesource.com/native.git/+/a88db78f [ffigen] Run Flutter FFI plugin template ffigen on CI (433) https://dart.googlesource.com/native.git/+/409e87a6 [ffigen] Fix obscure NSTimeZone parsing bug (440) https://dart.googlesource.com/native.git/+/f28313b2 [ffigen] Add an objective-C module prefix option (438) https://dart.googlesource.com/native.git/+/43a485c9 [ffigen] Add exclude-all-by-default config flag (431) https://dart.googlesource.com/native.git/+/7592ecb7 [ffigen] Memory management for Blocks (429) https://dart.googlesource.com/native.git/+/a06690e8 [jnigen] Initial JNI support (https://github.com/dart-lang/jnigen/issues/11) https://dart.googlesource.com/native.git/+/e0dc7c5d [ffigen] Throw an error if ObjC class fails to load (423) https://dart.googlesource.com/native.git/+/5507e994 [ffigen] Update clang to fix CI failure (425) https://dart.googlesource.com/native.git/+/c71be7b5 [ffigen] ObjC example (416) https://dart.googlesource.com/native.git/+/691eb2b6 [ffigen] Check that property types aren't incomplete (415) https://dart.googlesource.com/native.git/+/ed819e35 [ffigen] Skip methods that have incomplete types (412) https://dart.googlesource.com/native.git/+/3dee1d86 [jnigen] Create FFI plugin (https://github.com/dart-lang/jnigen/issues/8) https://dart.googlesource.com/native.git/+/63534577 [jnigen] Top level project information files (https://github.com/dart-lang/jnigen/issues/6) https://dart.googlesource.com/native.git/+/837ceb41 [jnigen] Move stub package to its own folder (https://github.com/dart-lang/jnigen/issues/2) https://dart.googlesource.com/native.git/+/982a2679 [jnigen] Delete CONTRIBUTING.md (https://github.com/dart-lang/jnigen/issues/4) https://dart.googlesource.com/native.git/+/151ed121 [ffigen] Fixing mac bot by explicitly setting the objective C sysroot (414) https://dart.googlesource.com/native.git/+/04dc916d [ffigen] Add a call method to Blocks (407) https://dart.googlesource.com/native.git/+/b15555b2 [ffigen] Bump `package:ffi` (405) https://dart.googlesource.com/native.git/+/153aad5c [ffigen] Use `ldconfig` to find libclang (403) https://dart.googlesource.com/native.git/+/0179324d [ffigen] More ways to find XCode's libclang on MacOS (402) https://dart.googlesource.com/native.git/+/6cad2383 [ffigen] Add Windows CI (399) https://dart.googlesource.com/native.git/+/e1d384dd [ffigen] Fix `include-directives` on Windows (397) https://dart.googlesource.com/native.git/+/3742faa3 [jnigen] Add build badge (https://github.com/dart-lang/jnigen/issues/1) https://dart.googlesource.com/native.git/+/9858cfc5 [ffigen] Update README.md (396) https://dart.googlesource.com/native.git/+/4cf58c70 [ffigen] bump package:ffi (394) https://dart.googlesource.com/native.git/+/2a39260b [jnigen] Initial commit https://dart.googlesource.com/native.git/+/c3643b60 [ffigen] Removed config `dart-bool`. Booleans are now always generated with `bool` (391) https://dart.googlesource.com/native.git/+/edd60410 [ffigen] Test assign/retain/copy properties (390) https://dart.googlesource.com/native.git/+/b54e57d1 [ffigen] Test autorelease pools and more copying cases (385) https://dart.googlesource.com/native.git/+/50e0ba86 [ffigen] Add the ability to control reference counting behavior in castFromPointer (388) https://dart.googlesource.com/native.git/+/4e2b86de [ffigen] Add xcode tools llvm as default path (389) https://dart.googlesource.com/native.git/+/9f466919 [ffigen] Add a static isInstance method to ObjC classes (383) https://dart.googlesource.com/native.git/+/3f345cbc [ffigen] Handle NS_RETURNS_RETAINED and methods that start with new/alloc or contain copy (380) https://dart.googlesource.com/native.git/+/5c613df6 [ffigen] docs(changelog): remove extra (377) https://dart.googlesource.com/native.git/+/50065811 [ffigen] Support constructing blocks from closures (382) https://dart.googlesource.com/native.git/+/b6033532 [ffigen] Initialize the Block isa field (378) https://dart.googlesource.com/native.git/+/6ba5f5c1 [ffigen] Automatic ref counting for ObjC objects (372) https://dart.googlesource.com/native.git/+/7258410a [ffigen] Use `package:ffi` 1.2.1 (371) https://dart.googlesource.com/native.git/+/01d9ba63 [ffigen] Fix coverage for ObjC tests (370) https://dart.googlesource.com/native.git/+/383859ae [ffigen] Cleanup some code around ObjC goldens (368) https://dart.googlesource.com/native.git/+/04332def [ffigen] Update pubspec of examples (367) https://dart.googlesource.com/native.git/+/2a05b4f1 [ffigen] Mention ObjectiveC support in changelog (366) https://dart.googlesource.com/native.git/+/7b376dbb [ffigen] Use ABI-specific integers from `dart:ffi` (365) https://dart.googlesource.com/native.git/+/cd1fec4f [ffigen] Remove ObjC tests that check golden generated code (363) https://dart.googlesource.com/native.git/+/3e584af3 [ffigen] Update names of compound members to reflect what is generated (361) https://dart.googlesource.com/native.git/+/32162936 [ffigen] Add a registry for ObjC built in interfaces (358) https://dart.googlesource.com/native.git/+/9148781b [ffigen] Don't remove trailing underscores from method names (357) https://dart.googlesource.com/native.git/+/60883c96 [ffigen] Fix ObjC @class declarations (352) https://dart.googlesource.com/native.git/+/f22e7460 [ffigen] Fix a bug where duplicate methods were added to some classes. (354) https://dart.googlesource.com/native.git/+/287abc4a [ffigen] Block support (333) https://dart.googlesource.com/native.git/+/c1bafec4 [ffigen] Categories (349) https://dart.googlesource.com/native.git/+/47d147ee [ffigen] Fix coverage configuration (337) https://dart.googlesource.com/native.git/+/7aa6d589 [ffigen] Make properties that set/get objective-c instances nullable (348) https://dart.googlesource.com/native.git/+/3ce29269 [ffigen] Add the ability to cast from a pointer to an interface. (346) https://dart.googlesource.com/native.git/+/afe4f0d9 [ffigen] Don't automatically include system headers (342) https://dart.googlesource.com/native.git/+/0b95430f [ffigen] Make all NSObject references nullable in the generated dart bindings. (339) https://dart.googlesource.com/native.git/+/4da279f3 [ffigen] Move ObjC classes and SELs to NativeLibrary (331) https://dart.googlesource.com/native.git/+/e317fc2e [ffigen] Improve Type deduping in objc_msgSend (326) https://dart.googlesource.com/native.git/+/4af99f99 [ffigen] Configurable filtering for ObjC interfaces (313) https://dart.googlesource.com/native.git/+/5560f587 [ffigen] Update pubspec.yaml (332) https://dart.googlesource.com/native.git/+/cb7825b0 [ffigen] Create more tests and move them to separate files. (330) https://dart.googlesource.com/native.git/+/66f0cc0b [ffigen] Provide a command to regenerate golden bindings. (322) https://dart.googlesource.com/native.git/+/205549b1 [ffigen] Move ObjCBuiltInFunctions to its own file and its singleton to data.dart (325) https://dart.googlesource.com/native.git/+/a6c2e234 [ffigen] Generate a nice error if files generated by test/setup.dart are not present https://dart.googlesource.com/native.git/+/07af7fb7 [ffigen] Move property tests into "native_objc_test" group https://dart.googlesource.com/native.git/+/d461aa87 [ffigen] Fix instructions for adding `package:ffi` (318) https://dart.googlesource.com/native.git/+/2015d3e1 [ffigen] Generate complete method signatures. (319) https://dart.googlesource.com/native.git/+/fc201ac2 [ffigen] Add support for readonly and class properties (314) https://dart.googlesource.com/native.git/+/01511cfa [ffigen] Coerce BOOL to bool (311) https://dart.googlesource.com/native.git/+/eece4afe [ffigen] NSString <-> String converters (310) https://dart.googlesource.com/native.git/+/3c6c3761 [ffigen] Fix handling of void methods (308) https://dart.googlesource.com/native.git/+/54ced0d7 [ffigen] Add an integration test for objective C (293) https://dart.googlesource.com/native.git/+/4f93f6e8 [ffigen] Make type polymorphic (290) https://dart.googlesource.com/native.git/+/cecaba72 [ffigen] Remove bool special casing (294) https://dart.googlesource.com/native.git/+/bdfd97a3 [ffigen] Add a warning message to objective C support (292) https://dart.googlesource.com/native.git/+/ecbdca2d [ffigen] Add contributing info (291) https://dart.googlesource.com/native.git/+/730572f8 [ffigen] Objective C interfaces (287) https://dart.googlesource.com/native.git/+/793585f8 [ffigen] Test on mac, to cover objective C (289) https://dart.googlesource.com/native.git/+/f2a92398 [ffigen] First bits of Objective C support (281) https://dart.googlesource.com/native.git/+/489e1e64 [ffigen] BindingsIndex refactor (283) https://dart.googlesource.com/native.git/+/b570afb6 [ffigen] Add default location for LLVM on M1 Mac (278) https://dart.googlesource.com/native.git/+/3f80cd0d [ffigen] Fix size_t and wchar_t default dart types. (274) https://dart.googlesource.com/native.git/+/b1d4a132 [ffigen] Merge pull request 269 from mannprerak2/merge_stable https://dart.googlesource.com/native.git/+/bf2f951f [ffigen] Merge branch 'stable' into merge_stable https://dart.googlesource.com/native.git/+/f210680f [ffigen] Release Patch 4.1.3 (266) https://dart.googlesource.com/native.git/+/a8305d64 [ffigen] Move to new analyzer checks (264) https://dart.googlesource.com/native.git/+/0f708a7b [ffigen] Support for ABI-specific integers (261) https://dart.googlesource.com/native.git/+/68a2e76e [ffigen] Suggest using `dart pub add -d ffigen` (259) https://dart.googlesource.com/native.git/+/b74c78a2 [ffigen] Exclude all on empty include list (254) https://dart.googlesource.com/native.git/+/ba4d058e [ffigen] Added fix for member name and type name collision in structs/unions. (256) https://dart.googlesource.com/native.git/+/94464ea2 [ffigen] Added support for marking functions as Leaf. (252) https://dart.googlesource.com/native.git/+/c7a25fb4 [ffigen] Bump version to 4.0.0 (247) https://dart.googlesource.com/native.git/+/76464220 [ffigen] Update library.dart dartfmt comment (234) https://dart.googlesource.com/native.git/+/9a5ceb77 [ffigen] Added config for exposing typedefs to Native and Dart type. (231) https://dart.googlesource.com/native.git/+/16ecf9f6 [ffigen] Move from package:pedantic to pacakge:lints (230) https://dart.googlesource.com/native.git/+/eb7b6545 [ffigen] Generate dart typedefs for C typedefs (224) https://dart.googlesource.com/native.git/+/ae89d3ff [ffigen] Add `structs` and `enums`'s rename to readme (225) https://dart.googlesource.com/native.git/+/4bed0754 [ffigen] Allow users to specify complete dylib path (221) https://dart.googlesource.com/native.git/+/362cc702 [ffigen] Added support for generating Unions (215) https://dart.googlesource.com/native.git/+/09e8bedb [ffigen] Bump version to 3.0.0 (216) https://dart.googlesource.com/native.git/+/53a193df [ffigen] Update readme to clarify C support. (209) https://dart.googlesource.com/native.git/+/78cafc8f [ffigen] Support for inline arrays in structs (206) https://dart.googlesource.com/native.git/+/9f8e6d4f [ffigen] Support for Packed struct (205) https://dart.googlesource.com/native.git/+/1d65b284 [ffigen] Update LICENSE (203) https://dart.googlesource.com/native.git/+/6152bb44 [ffigen] Fix error caused by duplicate declaration names and collision with ffi library prefix (200) https://dart.googlesource.com/native.git/+/14f7c969 [ffigen] Support Char_U type kind (202) https://dart.googlesource.com/native.git/+/108d09f5 [ffigen] Add /usr/lib to default locations and update readme. (196) https://dart.googlesource.com/native.git/+/8d26a111 [ffigen] Added key `llvm-path`. Deprecate `llvm-lib`. (194) https://dart.googlesource.com/native.git/+/7e106e41 [ffigen] Automatically add std lib for macos, allow passing list to compiler-opts. (193) https://dart.googlesource.com/native.git/+/8fb2f9f6 [ffigen] Added new command-line option `--compiler-opts`. (192) https://dart.googlesource.com/native.git/+/02ef1a37 [ffigen] Fix global rename in README.md (188) https://dart.googlesource.com/native.git/+/3c138e56 [ffigen] Fix `sort: true` not working, remove //+ from full comments. (187) https://dart.googlesource.com/native.git/+/1c59892b [ffigen] Added option to generate dependency-only structs as opaque (181) https://dart.googlesource.com/native.git/+/710842f4 [ffigen] Fixed generation of empty Opaque structs due to forward declarations. (180) https://dart.googlesource.com/native.git/+/e2038adf [ffigen] Fix generation of duplicate constants with multiple entry points (178) https://dart.googlesource.com/native.git/+/18189c4a [ffigen] Added subkey symbol-address to expose native pointers and typedefs. (175) https://dart.googlesource.com/native.git/+/8cd3d694 [ffigen] Support for Dynamic linking (174) https://dart.googlesource.com/native.git/+/a34723ff [ffigen] Ignore name of typedef struct pointer declaration, recursively create directories for output. (172) https://dart.googlesource.com/native.git/+/d1a04a04 [ffigen] Fixes for `const` in name error, unnamed inline structs and empty structs. (169) https://dart.googlesource.com/native.git/+/d785fee7 [ffigen] Stable release: Update dependencies to sound null safety, minor changes. (168) https://dart.googlesource.com/native.git/+/3cf6fc05 [ffigen] Skip inline functions (147) (167) https://dart.googlesource.com/native.git/+/f75b3e82 [ffigen] Use Opaque to represent empty Structs (142, 143) (166) https://dart.googlesource.com/native.git/+/bd781397 [ffigen] Added support for Global variables (139) (165) https://dart.googlesource.com/native.git/+/7ae4d240 [ffigen] Remove setup phase and usage of --no-sound-null-safety flag (135, 137) (164) https://dart.googlesource.com/native.git/+/bee5db2f [ffigen] Support for passing/returning Structs by value. (134) (163) https://dart.googlesource.com/native.git/+/7f3948fd [ffigen] Support for Nested structs (133) (161) https://dart.googlesource.com/native.git/+/06131d63 [ffigen] Update README.md (152) https://dart.googlesource.com/native.git/+/4a9672f1 [ffigen] Removed usage of --no-sound-null-safety flag. (136) https://dart.googlesource.com/native.git/+/fb8ac4ee [ffigen] Add include path for systems with LLVM 11 (e.g. Debian 11) (125) https://dart.googlesource.com/native.git/+/2ab4701a [ffigen] Remove usage of package:collection. (130) https://dart.googlesource.com/native.git/+/d98fee1a [ffigen] Null safety migration (122) https://dart.googlesource.com/native.git/+/68e4fa04 [ffigen] Migrate to GitHub Actions (124) https://dart.googlesource.com/native.git/+/3f867137 [ffigen] Added support for Dart_Handle to be generated as Handle (121) https://dart.googlesource.com/native.git/+/59708c61 [ffigen] Added workaround to map typedef names to a NativeType. (119) https://dart.googlesource.com/native.git/+/7a7a823a [ffigen] Fixed missing typedefs nested under return type of another typedef (116) https://dart.googlesource.com/native.git/+/13a64f3d [ffigen] Handled proper conversion of macro doubles. (113) https://dart.googlesource.com/native.git/+/a4923ab3 [ffigen] Updated tool to use dart format when sdk >=2.10.0 (110) https://dart.googlesource.com/native.git/+/46dc6244 [ffigen] Fixed errors due to extended ASCII and control characters in macros (106) https://dart.googlesource.com/native.git/+/ed2cf4d0 [ffigen] Update readme (104) https://dart.googlesource.com/native.git/+/026ffe19 [ffigen] Handle function types in functions/typedefs as function pointers (103) https://dart.googlesource.com/native.git/+/ad561043 [ffigen] Bump version to 1.0.0, minor fixes (101) https://dart.googlesource.com/native.git/+/74a89af3 [ffigen] Update lib/src/README.md (100) https://dart.googlesource.com/native.git/+/4a17f0de [ffigen] Update README.md (97) https://dart.googlesource.com/native.git/+/8e287ce5 [ffigen] Added support for including/excluding/renaming unnamed_enums (96) https://dart.googlesource.com/native.git/+/f760287e [ffigen] Clarify LLVM error messages (93) https://dart.googlesource.com/native.git/+/eb3cae23 [ffigen] Added support for c99 bool (86) https://dart.googlesource.com/native.git/+/9566c7e4 [ffigen] Removed dart:cli usage, use dylib version from ffigen's pubspec.yaml (88) https://dart.googlesource.com/native.git/+/82875d4c [ffigen] Improve logs (87) https://dart.googlesource.com/native.git/+/74a808bb [ffigen] Fix missing typedef dependencies (90) https://dart.googlesource.com/native.git/+/e07937e0 [ffigen] Remove structs members for bit field members, Added tests (85) https://dart.googlesource.com/native.git/+/12f79c8c [ffigen] update meta (82) https://dart.googlesource.com/native.git/+/1a260ce3 [ffigen] Updated parsing of typedef enclosed declarations (83) https://dart.googlesource.com/native.git/+/5a96775b [ffigen] Update readme - added FAQ, fixed config table (78) https://dart.googlesource.com/native.git/+/ece2197c [ffigen] Update licenses for third_party (76) https://dart.googlesource.com/native.git/+/c6f7ec49 [ffigen] Fixes for typedefs (75) https://dart.googlesource.com/native.git/+/cad06e0a [ffigen] Update public API (70) https://dart.googlesource.com/native.git/+/1596489c [ffigen] Handled flexible array members in structs (69) https://dart.googlesource.com/native.git/+/a8551680 [ffigen] Regexp based Member renaming (66) https://dart.googlesource.com/native.git/+/f6b92474 [ffigen] Simpler include/exclude, regexp based renaming for declarations (62) https://dart.googlesource.com/native.git/+/09af0376 [ffigen] Escaped special characters $ and ' from string macros. (64) https://dart.googlesource.com/native.git/+/d80fa0ae [ffigen] Update headers config. (60) https://dart.googlesource.com/native.git/+/be939f4b [ffigen] Added support for parsing macros and anonymous unnamed enums (35) https://dart.googlesource.com/native.git/+/c1048a0c [ffigen] Update config specification for Comments (48) https://dart.googlesource.com/native.git/+/c07219b8 [ffigen] Handle function argument dart keywords and setup travis (49) https://dart.googlesource.com/native.git/+/4439a4ee [ffigen] Update README.md (46) https://dart.googlesource.com/native.git/+/6afbceb5 [ffigen] Fixed wrapper not found error when running pub run ffigen (42) https://dart.googlesource.com/native.git/+/f2f4eb43 [ffigen] Address pub score (37) https://dart.googlesource.com/native.git/+/5f8de9fd [ffigen] Prepare for pub release (36) https://dart.googlesource.com/native.git/+/832458d3 [ffigen] Name conflict resolution with reserved Dart Keywords (34) https://dart.googlesource.com/native.git/+/c499fe52 [ffigen] Added large tests, bug fixes (33) https://dart.googlesource.com/native.git/+/e8034cc5 [ffigen] Fixes for running on MacOS (32) https://dart.googlesource.com/native.git/+/2b7eb311 [ffigen] Update readme (31) https://dart.googlesource.com/native.git/+/b60cc611 [ffigen] Added wrapper over lookUpbindings, fixed merge conflicts, migrated code (25) https://dart.googlesource.com/native.git/+/d3c91ade [ffigen] Support for Prefix and Names in config. (20) https://dart.googlesource.com/native.git/+/27d83703 [ffigen] Support for array parameters in functions, array workarounds in Structs (18) https://dart.googlesource.com/native.git/+/5d438979 [ffigen] Add gitignores for IDEs and debuggers (19) https://dart.googlesource.com/native.git/+/01378b8d [ffigen] Improved generated comments (16) https://dart.googlesource.com/native.git/+/ee580636 [ffigen] Simplified run command (15) https://dart.googlesource.com/native.git/+/39b1468c [ffigen] Initial generator: functions, structs, enums (2) https://dart.googlesource.com/native.git/+/ff1ac4a1 [ffigen] Update README.md (9) https://dart.googlesource.com/native.git/+/8417b07c [ffigen] Remove/fix references to dartlang.org (1) https://dart.googlesource.com/native.git/+/50fc8c44 [ffigen] Initialize repo https://dart.googlesource.com/native.git/+/9bfe8e78 [ffigen] Initial commit ``` Diff: https://dart.googlesource.com/native.git/+/eaea725b0939815e7d007a34808a7293b179a2ad..5dca10ea324bb19f104126d72472280091829873/ Change-Id: I1c5a08859945442d968ff7dba333c0649b11f26c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/336826 Reviewed-by: Daco Harkes <dacoharkes@google.com> Commit-Queue: Daco Harkes <dacoharkes@google.com>
Test out this flutter app with jni: 0.7.0 on an Android device and you will receive the following output:
Notice the string has extra characters at the end:
com.example.jnitest됀�
of the package name.This is because the current implementation overflows when reading the characters for strings. If the memory for the string originates in a buffer that was null terminated this is not an issue. But this cannot be guaranteed. Instead this PR patches the requirement to fetch the length of the string before we read the characters.
This run over on reading can lead to an infinite-loop/crash on reading as it will either carry on reading into invalid memory or simply overrun at some point. Edit: I have also experience random crashes in the wild due to this as well.
It is also good to note that the official JNI docs for GetStringChars does not mention the returned jchar* as being null terminated. So we should not expect it.
There was two places in the code that
toDartString
was implemented. This was also part of the underlying cause because the two implementations were different. This PR also patches the code so that one calls the other and they both end up using the same implementation.I have also ensured the tests are updated to validate UTF-8 and UTF-16 implementations. I wanted to test the unhappy case where the originating string is not null terminated, but with strings created on my local machine I cannot replicate. I can however replicate on Android as the test above shows.
@HosseinYousefi I see you are working on 0.8.0 so I have chosen not to update the CHANGELOG or pubspec and let you do that as required.